#pragma once
#include <game/Config.h>
#include <Atom.h>

namespace liba {
namespace lib3d {
namespace node {

class Node;

} // namespace node
} // namespace lib3d
} // namespace liba

ARELLO_GAME_NAMESPACE_DECL_START
namespace controls {

class Control;

class ControlCreator
{
public:
	virtual ~ControlCreator() { }

	virtual liba::Atom GetName() const = 0;
	virtual Control* Create(const liba::Atom& name, liba::lib3d::node::Node* root) const = 0;
};

} // namespace controls
ARELLO_GAME_NAMESPACE_DECL_END